package com.zxl.designpattern.behavioral.strategy;

/**
 * 测试策略模式
 */
public class Test {

    public static void main(String[] args) {
        Navigator navigator = new Navigator("北京天安门", "北京大兴国际机场");
        
        System.out.println("从 " + navigator.getStartLocation() + " 到 " + navigator.getDestination() + " 的导航:");
        
        // 使用驾车策略
        System.out.println("\n=== 驾车路线 ===");
        navigator.setRouteStrategy(new DrivingStrategy());
        navigator.buildRoute();
        
        // 使用公交策略
        System.out.println("\n=== 公交路线 ===");
        navigator.setRouteStrategy(new TransitStrategy());
        navigator.buildRoute();
        
        // 使用步行策略
        System.out.println("\n=== 步行路线 ===");
        navigator.setRouteStrategy(new WalkingStrategy());
        navigator.buildRoute();

        // Comparator也是策略模式，提供一个排序接口，具体的排序算法由实现类来提供
    }
}    